$NG.AllReady(function (page, { useDataIndexChange, useUpdateRow, useUpdateRows,useBeforeClick ,useValuesChange}) {
    console.log('Data ready event triggered');
    //获取容器
    var mstform = $NG.getCmpApi("p_form_Subcontracting_Plan");
    var dgrid = $NG.getCmp('p_form_Subcontracting_Plan_d'); //获取表体数据
    var dgridd = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); //获取表体数据
    if (mstform) {
        console.log('mstform is reayd');
    } else {
        console.log('mstform 获取错误');
    }

    if (dgrid) {
        console.log('dgrid is reayd');
    } else {
        console.log('dgrid 获取错误');
    }
    useValuesChange(({args})=>{
        setTitle()
    },"p_form_Subcontracting_Plan.phid_pc")
    // 保存钩子
    useBeforeClick(async function ({ args }) {
        //按钮点击前事件
        const _arr = dgridd.getRows()
        const _errArr = []
        _arr.forEach((item,inde) => {
            const nfb_qty=Number(item.u_sub_qty)
            const nfb_amt=Number(item.u_nfbhs_prc)
            const jh_qty = Number(item.u_plan_qty)
            const jh_amt= Number(item.u_jhhsdj)
            if(nfb_amt*nfb_qty<jh_qty*jh_amt){
                _errArr.push(inde+1)
            }
        });  
        if(_errArr.length!==0){
            const _str = _errArr.join("、")
            console.log(_str,_errArr);
            $NG.alert(`当前有明细中存在计划金额超出限制序号为：${_str}`)
            return false
        } else{
            return true
        }    
      }, "save");
    useUpdateRows(({args})=>{
        $NG.getCmpApi("p_form_Subcontracting_Plan_d").refreshView()
        console.log(`刷新了`,args[0]);
      },"p_form_Subcontracting_Plan_d")
    // 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        console.log(`temp--1`,row);
        // 计算金额：数量 * 单价
        row.u_plan_hs_amt = row.u_plan_qty * row.u_jhhsdj;// 假设 row 中有 u_plan_qty 字段
        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_plan_qty',); // 监听 prc 字段的变化
    
        // 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
        // useDataIndexChange(({ args, table }) => {
        //     console.log(222222222222222222222222);
        //     // 获取当前行数据
        //     var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        //     var row = args[0];
        //     if(Number(row.u_jhhsdj)>Number(row.u_nfbhs_prc)){
        //         $NG.alert("警告：超出拟分包含税单价")
        //         row.u_jhhsdj = null
        //     }
        // }, 'u_jhhsdj',); // 监听 prc 字段的变化

        // 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
        useDataIndexChange(({ args, table }) => {
            console.log(222222222222222222222222);
            // 获取当前行数据
            var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
            var row = args[0];
            if(Number(row.u_jhws_prc)>Number(row.u_nfb_prc)){
                $NG.alert("警告：超出拟分包未税单价")
                row.u_jhws_prc = null
            }
        }, 'u_jhws_prc',); // 监听 prc 字段的变化

        // 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
        useDataIndexChange(({ args, table }) => {
            console.log(222222222222222222222222);
            // 获取当前行数据
            var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
            var row = args[0];
            if(Number(row.u_jhws_prc)>Number(row.u_nfb_prc)){
                $NG.alert("警告：超出拟分包未税单价")
                row.u_jhws_prc = null
            }
        }, 'u_nfb_prc',); // 监听 prc 字段的变化
        // // 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
        useDataIndexChange(({ args, table }) => {
            console.log(222222222222222222222222);
            // 获取当前行数据
            var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
            var row = args[0];
            if(Number(row.u_plan_qty)+(Number(row.u_planned_qty) || 0)>Number(row.u_sub_qty)){
                $NG.alert("警告：计划数量超出拟分包数量")
                row.u_plan_qty = null
            }
        }, 'u_plan_qty',); // 监听 prc 字段的变化

        useDataIndexChange(({ args, table }) => {
            console.log(222222222222222222222222);
            // 获取当前行数据
            var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
            var row = args[0];
            if(Number(row.u_plan_qty)+(Number(row.u_planned_qty) || 0)>Number(row.u_sub_qty)){
                $NG.alert("警告：计划数量超出拟分包数量")
                row.u_plan_qty = null
            }
        }, 'u_planned_qty',); // 监听 prc 字段的变化
        
        useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        // 计算金额：数量 * 单价
        row.u_plan_hs_amt = row.u_plan_qty * row.u_jhhsdj;// 假设 row 中有 u_plan_qty 字段
        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_jhhsdj',); // 监听 prc 字段的变化
	
	// 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
    
        row.u_jhws_prc = row.u_jhhsdj / Number(1+Number(row.u_sl)) ;// 假设 row 中有 u_plan_qty 字段
        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_sl',); // 监听 prc 字段的变化
	
	// 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        row.u_jhws_prc = row.u_jhhsdj / Number(1+Number(row.u_sl)) ;
        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_jhhsdj',); // 监听 prc 字段的变化
    
    	// 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        row.u_jhhsdj = row.u_jhws_prc * Number(1+Number(row.u_sl)) ;
        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_jhws_prc',); // 监听 prc 字段的变化
	
	// 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        // 计算金额：数量 * 单价
        row.u_plan_ws_amt = row.u_jhhsdj / Number(1+Number(row.u_sl))  *  row.u_plan_qty;// 假设 row 中有 u_plan_qty 字段
        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_jhhsdj',); // 监听 prc 字段的变化
	
	// 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        console.log(`测试监听`,args);
        // 计算金额：数量 * 单价
        row.u_plan_ws_amt = row.u_jhhsdj / Number(1+Number(row.u_sl))  *  row.u_plan_qty;// 假设 row 中有 u_plan_qty 字段

        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_plan_qty',); // 监听 prc 字段的变化
	
	// 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        // 计算金额：数量 * 单价
        row.u_plan_ws_amt = row.u_jhhsdj / Number(1+Number(row.u_sl))  *  row.u_plan_qty;// 假设 row 中有 u_plan_qty 字段
    
        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_sl',); // 监听 prc 字段的变化
    
    	// 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        // 计算金额：数量 * 单价
        row.u_nfbcbhs = row.u_nfbhs_prc * row.u_plan_qty;// 假设 row 中有 u_plan_qty 字段
        row.u_sy_qty = row.u_plan_qty
        // 更新行数据
        gridTab.updateRow(row);
    }, 'u_plan_qty',); // 监听 prc 字段的变化
    
        	// 表体当前选中行数据更新---->单个字段更新数据以及编辑事件
    useDataIndexChange(({ args, table }) => {
        // 获取当前行数据
        var gridTab = $NG.getCmpApi('p_form_Subcontracting_Plan_d'); // 获取tab页数据
        var row = args[0];
        // 计算金额：数量 * 单价
        
    }, 'u_plan_qty',); // 监听 prc 字段的变化
    useUpdateRows(({args})=>{
        console.log(`增行发生`);
        args[0].forEach(row=>{
            row.u_sy_qty = row.u_plan_qty;// 假设 row 中有 u_plan_qty 字段
        })
        dgridd.refreshView()
    },"p_form_Subcontracting_Plan_d")
    const toolbar =$NG.getCmpApi("toolbar_top");
    toolbar.getItem("imp").setHidden();
    
    $NG.AllReady(function (
    editPage,
    { useAction, useValuesChange, useDataIndexChange, useClick }
  ) {
       //项目名称变化时自动带入产品线、事业部
       useValuesChange(({ args }) => {
        getProjectInfo()
        console.log(args[0]);
        //const phid_pc = args[0].pc.PhId;
        const phid_pc = args[0].phid_pc.value;
        //从项目取值
        if (phid_pc) {
            console.log(phid_pc);
            //从项目取值
            $NG.execServer("getProjInfo", { pc: phid_pc }, function (res) {
                const data = JSON.parse(res.data);
                
                const pc_no= data[0].extendObjects.bill_no;
                //事业部，产品线
                $NG.updateState((updater) => {
                    updater.data.p_form_Subcontracting_Plan.setProps({
                     user_pc_no: pc_no
                    });
                });
            });
        }

    }, "p_form_Subcontracting_Plan.phid_pc");
  });

  getInDate()
  //根据当前日期获取工作周期
  function getInDate(){
    $NG.execServer("getInDate", {}, function (res){
        if(res.count !==0){
            const _data = JSON.parse(res.data)[0].extendObjects
            $NG.updateState((updater)=>{
                updater.data.p_form_Subcontracting_Plan.setProps({
                    phid_cycle:{
                        label:_data.bill_name,
                        value:_data.phid
                    }
                })
            })
        }
    })
  }

  //获取项目信息
  // 获取项目
  getProjectInfo()
  function getProjectInfo(isReturn = false, phid = mstform.getItem("phid_pc").getValue(), fun){
    if(!phid){return }
    try{
        setTimeout(()=>{
            $NG.execServer("getPtInfoByPhid",{phid: phid}, (res)=>{
               if(res.count !== 0){
                const _data = JSON.parse(res.data)[0].extendObjects
                console.log(`获取项目信息`, _data);
                if(isReturn){
                    fun(_data)
                } else {
                    $NG.updateState((updater)=>{
                        updater.data.p_form_Subcontracting_Plan.setProps({
                            u_pc_no: _data.pc_no, //项目编码
                        })
                    })
                }
               }
            })
        },100)
    }catch(err){
        $NG.alert("获取项目信息发生失败请检查~")
    }
}
setTitle()
function setTitle(){
    $NG.execServer("GetZbTime",{phid_pc:mstform.getItem("phid_pc").getValue()},function(res){
        if(res.count ==0){
            $NG.updateState((updater)=>{
                updater.data.p_form_Subcontracting_Plan.setProps({
                    bill_name:`${mstform.getItem("phid_pc").getText()}第1次招标计划`
                })
            })
        }else{
            const _data = JSON.parse(res.data)[0].extendObjects
        $NG.updateState((updater)=>{
            updater.data.p_form_Subcontracting_Plan.setProps({
                bill_name:`${mstform.getItem("phid_pc").getText()}第${(_data.count)+1}次招标计划`
            })
        })
        }
        
    })
}
});

